package gui;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.uqbar.commons.utils.Observable;

import aOrganizar.Asiento;
import aOrganizar.Itinerario;
import aOrganizar.Reserva;
import aOrganizar.ReservaManager;
import aOrganizar.Usuario;

/**
 * Application Model para la reserva de asientos
 * 
 * @author Damian Cipolat
 * 
 */

@Observable
public class ReservasAsientos implements ReservasYComprasAsientos
{
	private Usuario          usuario;
	private List<Itinerario> resultados;
	private Itinerario       itinerarioSeleccionado;
	private ReservaManager   reserva_manager;

	public ReservasAsientos(Usuario usuario2)
	{
		this.usuario         = usuario2;
		this.reserva_manager = ReservaManager.getInstance();
		
		Collection<Asiento> asientosReservados = reserva_manager.reservas_usuario(usuario);
			
		resultados = new ArrayList<Itinerario>();
		
		for (Asiento asiento : asientosReservados)
		{
			ArrayList<Asiento> asientos = new ArrayList<Asiento>();
			
			asientos.add(asiento);
			Itinerario itinerario = new Itinerario();
			itinerario.setAsientos(asientos);
			resultados.add(itinerario);
		}
	}

	/* (non-Javadoc)
	 * @see gui.ReservasYCompras#getUsuario()
	 */
	@Override
	public Usuario getUsuario() {
		return this.usuario;
	}

	/* (non-Javadoc)
	 * @see gui.ReservasYCompras#getItinerarioSeleccionado()
	 */
	@Override
	public Itinerario getItinerarioSeleccionado() {
		return itinerarioSeleccionado;
	}

	/* (non-Javadoc)
	 * @see gui.ReservasYCompras#setItinerarioSeleccionado(aOrganizar.Itinerario)
	 */
	@Override
	public void setItinerarioSeleccionado(Itinerario itinerarioSeleccionado) {
		this.itinerarioSeleccionado = itinerarioSeleccionado;
	}

	/* (non-Javadoc)
	 * @see gui.ReservasYCompras#getResultados()
	 */
	@Override
	public List<Itinerario> getResultados() {
		return resultados;
	}

	/* (non-Javadoc)
	 * @see gui.ReservasYCompras#setResultados(java.util.List)
	 */
	@Override
	public void setResultados(List<Itinerario> resultados) {
		this.resultados = resultados;
	}

	/* (non-Javadoc)
	 * @see gui.ReservasYCompras#getTipo()
	 */
	@Override
	public String getTipo() {

		return "Reservas";
	}

}
